The present invention relates to data processing, particularly to the correction of errors relating to compressed and expanded data. The present invention is particularly adapted to the digital compression and expansion of speech data, particularly wherein the speech data has been manipulated for example by cutting or pasting of portions thereof that tend to produce amplitude offset errors.
Pulse code modulation (PCM) is a common technique for digitizing speech by sampling the speech sound wave in its analog form and converting each sampling into a binary number, to produce digital data (PCM data). Commonly, this PCM data is edited, for example by cutting out portions to delete them or to paste portions at another location in the data, which is known as cutting and/or pasting of speech PCM data.
PCM data may be compressed, for efficiency of storage, transmission and the like by converting the PCM data into differences between adjacent samplings, rather than the value of the samplings themselves, which technique is known as differential compression. Differential speech PCM data, after storage or transmission, can be expanded into PCM data, which is particularly useful in a computer system having multimedia terminals.
A multimedia terminal can process speech signals or video signals with a computer or when connected by a communication network with a computer, which communication network usually transmits only digital signals. In general, speech data is converted into a digital form, digitally compressed, transmitted or stored, subjected to data processing (such as manipulation that includes editing functions such as cutting and/or pasting), and expanded from its compressed form after storage or transmission.
Various compression methods have been proposed and have been put into practice, and many of these compression methods utilize a differential PCM system employing differential processing. ADPCM (adaptive differential pulse code modulation) is a known differential PCM system that is currently used.
The present invention is usable with various forms of differential PCM that are available. A differential PCM system particularly adapted to the present invention compresses digital PCM data by taking the simple amplitude difference between a preceding PCM sample value and the current PCM sample value, and storing such difference with respect to each sample value, in succession. The data is thus compressed, because it takes considerably less memory to store each difference than to store each sample value.
In an effort to overcome the offset problem occurring in the expansion of data, it has been known to employ a CCITT-recommended ADPCM as described in "Prevention of Predictor Mistracking in ADPCM Coders", D. Millar and Mermelstein, IEEE ICCC 84. During the expansion in such a system, the following equation is employed for progressively neglecting old values based on previous sampling for the purpose of reducing reflection of error data value: EQU y(k)=(1-.epsilon.).multidot.y(k-1)+E(k) (Number 1)
where
y(k): kth sample value; PA1 .epsilon.: constant to satisfy 0&lt;e&lt;&lt;1; and PA1 E(k): kth difference (differential) signal.
With the above system, an error that occurs due to connection or division can be progressively reduced with time.
In another system for reducing an error caused by connection or division, upper and lower thresholds are set for the expanded data. Each time an expanded data sampling reaches either of the upper and lower thresholds, the current value of the expanded data is corrected so that the threshold is not exceeded, which correction will then be passed to all succeeding expanded data.
Another conventional way of coping with the above-mentioned problem associated with divisional connection, employs expansion of the entire compressed data before performing the connection or division, and then again compressing the entire data after the performance of such connection or division, thereby completely avoiding the problem.